﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entidades.Espectaculos;
using Negocio.Espectaculos;

public partial class Espectaculos_Configuracion_frmConfiguracionProgramacion : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            ddlAnio.SelectedValue = DateTime.Now.Year.ToString();
            ddlMes.SelectedValue = DateTime.Now.Month.ToString();
            cargarCombos();
            cargarConfiguracion(-1, DateTime.Now.Month, DateTime.Now.Year, -1);

        }
    }

    private void cargarCombos()
    {
        Util.cargarLocal(ddLocal);
        Util.agregarSeleccionCombo(ddLocal,"");
    }

    private void cargarConfiguracion(int local, int mes,int anio, int estado)
    {
        List<EspConfiguracion> lista = EspConfiguracionBLL.ListarCofiguracion(local, mes, anio, estado);
        grvConfig.DataSource = lista;
        grvConfig.DataBind();

    }

    protected void btnNuevo_Click(object sender, EventArgs e)
    {
        try
        {
            EspConfiguracion obj = new EspConfiguracion();
            int id = 0;
            int.TryParse(hdIdConfig.Value, out id);

            obj.IdConfiguracion = id;
            obj.IdLocal = Convert.ToInt32(ddLocal.SelectedValue);
            obj.Estado = chkActivo.Checked ? 1 : 0;
            obj.Motivo = txtMotivo.Text.Trim();
            obj.Fecha = Convert.ToDateTime(txtFecha.Text);

            EspAuditoria audi = new EspAuditoria();
            audi.USER_CREACION = "ony";
            audi.USER_MODIFICACION = "ony";
            obj.Auditoria = audi;

            if (obj.Fecha < DateTime.Now.AddDays(-1))
            {
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('Ingrese una fecha válida.');", true);
                return;
            }

            int result = 0;
            if (id == 0)
            {
                result = EspConfiguracionBLL.AgregarConfiguracion(obj);
                if (result > 0)
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('La operación se realizó correctamente.');", true);
                    //Response.Redirect("frmRegistroArtista.aspx?id=" + result.ToString() + "&ref=reg");
                }
                else if (result == -1)
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('La fecha y local seleccionados ya existen.');", true);
                }
                else
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('Ocurrió un problema.');", true);
                }
            }
            else
            {
                result = EspConfiguracionBLL.ModificarConfiguracion(obj);

                if (result > 0)
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('La operación se realizó correctamente.');", true);
                   // Response.Redirect("frmRegistroArtista.aspx?id=" + id.ToString() + "&ref=reg");
                }
                else if (result == -1)
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('La fecha y local seleccionados ya existen..');", true);
                }
                else
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('Ocurrió un problema.');", true);

                }
            }

            refrescargrid();

        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("frmConfiguracionProgramacion.aspx");
    }

    protected void ddlMes_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            if (Page.AutoPostBackControl == ddlMes)
            {
                refrescargrid();
            }
        }
        catch (Exception ex)
        {

            throw ex;
        }
    }

    protected void ddlAnio_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            if (Page.AutoPostBackControl == ddlAnio)
            {
                refrescargrid();
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    protected void ddlLocal_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            if (Page.AutoPostBackControl == ddLocal)
            {
                refrescargrid();
            }
        }
        catch (Exception ex)
        {

            throw ex;
        }
    }

    protected void grvConfig_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow && e.Row.DataItem != null)
        {
            ImageButton ibtnEditar = (ImageButton)e.Row.FindControl("ibtnEditar");
            ibtnEditar.CommandArgument = e.Row.RowIndex.ToString();

            string estado = DataBinder.GetPropertyValue(e.Row.DataItem, "Estado").ToString();
            string motivo  = DataBinder.GetPropertyValue(e.Row.DataItem, "Motivo").ToString();
            string local = DataBinder.GetPropertyValue(e.Row.DataItem, "IdLocal").ToString();
            string fecha = Convert.ToDateTime(DataBinder.GetPropertyValue(e.Row.DataItem, "Fecha").ToString()).ToShortDateString();
            string id = DataBinder.GetPropertyValue(e.Row.DataItem, "IdConfiguracion").ToString();

            ibtnEditar.OnClientClick = "editarConfig('" + estado + "','" + local + "','" + motivo + "','" + fecha + "','" + id + "');";
            Image imgEstado = (Image)e.Row.FindControl("imgEstado");
            if (estado == "1")
            {
                imgEstado.ImageUrl = "~/Images/botones/activo.png";
            }
            else
            {
                imgEstado.ImageUrl = "~/Images/botones/inactivo.png";
            }
        }
    }


    private void refrescargrid() {

        int local = -1;
        int anio = -1;
        int mes = -1;
        int estado = -1;
        int.TryParse(ddLocal.SelectedValue, out local);
        int.TryParse(ddlMes.SelectedValue, out mes);
        int.TryParse(ddlAnio.SelectedValue, out anio);

        cargarConfiguracion(local, mes, anio, estado);
    }
}